--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/backend/test_plugin_integrity.py c0b0ddffd735a0d007c1be9a5e8563ec42fdafc0 (c0b0ddff) Text, 1.75 KB
T8b949e# SPDX-License-Identifier: 0BSD
Tff7b72import T7ee787json
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787plugin_integrity Tff7b72import Te6edf3INTEGRITY_TAMPER_MESSAGE
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787plugin_manager Tff7b72import Te6edf3PluginManager
Tff7b72def Td2a8ff_install_simpleTb4b4b4(Te6edf3managerTb4b4b4, Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Te6edf3source Tff7b72= Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffsrcTa5d6ff"
Te6edf3sourceTff7b72.Td2a8ffmkdirTb4b4b4(Tb4b4b4)
Tb4b4b4(Te6edf3source Tff7b72/ Ta5d6ff"Ta5d6ffplugin.jsonTa5d6ff"Tb4b4b4)Tff7b72.Td2a8ffwrite_textTb4b4b4(
Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffcom.example.integrityTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff1.0.0Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffapiVersionTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffIntegrityTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffrontendTa5d6ff"Tb4b4b4: Tb4b4b4{Ta5d6ff"Ta5d6ffentryTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fffrontend/main.jsTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fftypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffjsTa5d6ff"Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3frontend Tff7b72= Te6edf3source Tff7b72/ Ta5d6ff"Ta5d6fffrontendTa5d6ff"
Te6edf3frontendTff7b72.Td2a8ffmkdirTb4b4b4(Tb4b4b4)
Tb4b4b4(Te6edf3frontend Tff7b72/ Ta5d6ff"Ta5d6ffmain.jsTa5d6ff"Tb4b4b4)Tff7b72.Td2a8ffwrite_textTb4b4b4(Ta5d6ff"Ta5d6ffexport default Tffd700{}Ta5d6ff"Tb4b4b4, Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)
Tff7b72return Te6edf3managerTff7b72.Td2a8ffinstall_from_directoryTb4b4b4(Tffa657strTb4b4b4(Te6edf3sourceTb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fftest_tamper_disables_and_reenable_refreshes_hashTb4b4b4(Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Te6edf3manager Tff7b72= Te6edf3PluginManagerTb4b4b4(Tffa657strTb4b4b4(Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffstorageTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3installed Tff7b72= Te6edf3_install_simpleTb4b4b4(Te6edf3managerTb4b4b4, Te6edf3tmp_pathTb4b4b4)
Te6edf3plugin_id Tff7b72= Te6edf3installedTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]
Te6edf3managerTff7b72.Td2a8ffenableTb4b4b4(Te6edf3plugin_idTb4b4b4)
Tff7b72assert Te6edf3managerTff7b72.Td2a8ffget_pluginTb4b4b4(Te6edf3plugin_idTb4b4b4)Tb4b4b4[Ta5d6ff"Ta5d6ffenabledTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72True
Te6edf3target Tff7b72= Tb4b4b4(
Te6edf3tmp_path
Tff7b72/ Ta5d6ff"Ta5d6ffstorageTa5d6ff"
Tff7b72/ Ta5d6ff"Ta5d6ffpluginsTa5d6ff"
Tff7b72/ Ta5d6ff"Ta5d6ffinstalledTa5d6ff"
Tff7b72/ Te6edf3plugin_id
Tff7b72/ Ta5d6ff"Ta5d6fffrontendTa5d6ff"
Tff7b72/ Ta5d6ff"Ta5d6ffmain.jsTa5d6ff"
Tb4b4b4)
Te6edf3targetTff7b72.Td2a8ffwrite_textTb4b4b4(Ta5d6ff"Ta5d6ffexport default Ta5d6ff{Ta5d6fftampered:true}Ta5d6ff"Tb4b4b4, Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)
Te6edf3reloaded Tff7b72= Te6edf3PluginManagerTb4b4b4(Tffa657strTb4b4b4(Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffstorageTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3view Tff7b72= Te6edf3reloadedTff7b72.Td2a8ffget_pluginTb4b4b4(Te6edf3plugin_idTb4b4b4)
Tff7b72assert Te6edf3view Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3viewTb4b4b4[Ta5d6ff"Ta5d6ffenabledTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72False
Tff7b72assert Te6edf3viewTb4b4b4[Ta5d6ff"Ta5d6fftamperedTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72True
Tff7b72assert Te6edf3INTEGRITY_TAMPER_MESSAGE Tff7b72in Tb4b4b4(Te6edf3viewTb4b4b4[Ta5d6ff"Ta5d6ffauto_disabled_reasonTa5d6ff"Tb4b4b4] Tff7b72or Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3enabled Tff7b72= Te6edf3reloadedTff7b72.Td2a8ffenableTb4b4b4(Te6edf3plugin_idTb4b4b4)
Tff7b72assert Te6edf3enabledTb4b4b4[Ta5d6ff"Ta5d6ffenabledTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72True
Tff7b72assert Te6edf3enabledTb4b4b4[Ta5d6ff"Ta5d6fftamperedTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72False
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────